package com.cater.sys.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.cater.common.BaseQuery;
import com.cater.query.CommonQuery;
import com.cater.query.UserQuery;
import com.cater.sys.entity.User;

@Repository
public interface UserDao extends BaseDao<User, Integer, BaseQuery> {

	int findCount(@Param("qo") UserQuery userQuery);

	List<User> findList(@Param("qo") UserQuery userQuery, @Param("first") int first, @Param("max") int max);

	/**
	 * 根据名称查询
	 * 
	 * @param loginName
	 * @return
	 */
	User getByName(@Param("username") String loginName);

	/**
	 * 根据用户名和密码查询
	 * 
	 * @param loginName
	 * @param password
	 * @return
	 */
	User getByNameandpwd(@Param("username") String loginName, @Param("password") String password);

	/**
	 * 保存用户角色关联表
	 * 
	 * @param userId
	 * @param roleId
	 */
	void saveUR(@Param("userId") Integer userId, @Param("roleId") Integer roleId);

	/**
	 * 根据用户ID删除用户角色关联表
	 * 
	 * @param userId
	 */
	void removeUR(@Param("userId") Integer userId);

	int updatepaw(User user);

	List<User> getUserbydepid(Integer depid);

	List<User> getUserByCompanyId(Integer companyId);

	void deletestate(Integer id);

	List<User> getAllUserIds(@Param("qo") CommonQuery query);// 查询公司用户或者部门用户

	/**
	 * 用户id数组查询
	 * 
	 * @param ids
	 * @return
	 */
	List<Map<String, String>> getByArrIds(@Param("ids") String[] ids);
}
